|
The ROSE compiler framework, developed at Lawrence Livermore National Laboratory (LLNL), is an open source compiler infrastructure to generate source-to-source analyzers and translators for multiple source languages including C, C++, and Fortran. It also supports OpenMP, UPC and certain binary files, while also supporting auto-parallelizing compilers by generating source code annotated with OpenMP directives. Unlike most other research compilers, ROSE is aimed at enabling non-experts to leverage compiler technologies for building their own custom software analyzers and optimizers. ==The infrastructure== ROSE consists of multiple front-ends, a midend operating on its internal intermediate representation (IR), and backends regenerating (unparse) source code from IR. Optionally, vendor compilers can be used to compile the unparsed source code into final executables. ROSE uses the (Edison Design Group's C++ front-end ) to parse C and C++ applications. Fortran support, including F2003 and earlier F77/90/95 versions, is based on the (Open Fortran Parser (OFP) ) developed at Los Alamos National Laboratory. The ROSE IR consists of an abstract syntax tree, symbol tables, control flow graph, etc. It is an object-oriented IR with several levels of interfaces for quickly building source-to-source translators. All information from the input source code is carefully preserved in the ROSE IR, including C preprocessor control structure, source comments, source position information, and C++ template information (e.g., template arguments). ROSE is released under a BSD-style license. It targets Linux and Mac OS X on both IA-32 and x86-64 platforms. Its EDG parts are proprietary and distributed in binary form. Source files of the EDG parts can be obtained if users have a commercial or research license from EDG. 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「ROSE (compiler framework)」の詳細全文を読む スポンサード リンク
|